package com.alks.function.service.chengKong;

import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.dto.chengKong.cost.StitchStyleProcessDto;
import com.alks.function.data.dto.chengKong.cost.pcStitchProdDetailDto;
import com.alks.function.data.request.chengKong.*;
import com.alks.function.data.request.chengKong.cost.LotNoCutPriceRequest;
import com.alks.function.data.request.chengKong.cost.UnguidedBodyRequest;
import com.alks.function.data.request.chengKong.cost.generateCutLotNoPriceRequest;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * ClassName: PcStitchBonusReportTempService
 * Package: com.alks.function.service.chengKong
 * Description:
 *
 * @Author 蹇泽阳
 * @Create 2024/2/23 10:56
 * @Version 1.0
 */
@Service
public interface PcStitchProdDetailService {
    ResponseInfo<Object> getYieldDetailsList(PcStitchProdDetailRequest request);

    ResponseInfo changeYieldDetailsCfm(List<pcStitchProdDetailDto> request, String choose);

    ResponseInfo SelectTheTargetVehicleBody(UnguidedBodyRequest request);

    ResponseInfo ChooseASewingMachineColor(String styleNo);

    ResponseInfo NeedleTurningProcessDetails(StyleNoToColorRequest request);

    ResponseInfo NeedleCarInspectionAndVerification(StyleNoToColorRequest request, Integer choose);

    ResponseInfo DeleteBodyColor(StyleNoToColorRequest request);

    ResponseInfo DeleteTheEntireShape(String styleNo);

    ResponseInfo UnguidedBodyColor(UnguidedBodyRequest request);

    ResponseInfo ImportNeedleSewingProcess(MultipartFile file, String style, String color);

    ResponseInfo StitchLotNoDetail(LotNoCutPriceRequest request);

    ResponseInfo GenerateInstructionProcessUnitPrice(generateCutLotNoPriceRequest request, Integer choose);

    ResponseInfo getLotNoStitchDetail(LotNoCutPriceRequest request);

    ResponseInfo getLotNoStitchDetailList(LotNoRequest request);

    /**
     * 复制型体
     * @param stitchStyles
     * @param style
     * @param color
     * @return
     */
    int copyDetail(List<StitchStyleProcessDto> stitchStyles, String style, String color);

    /**
     * 复制工序
     * @param stitchStyles
     * @param style
     * @param color
     * @param seqNos
     * @return
     */
    int copyDetailByProcess(List<StitchStyleProcessDto> stitchStyles, String style, String color, List<Integer> seqNos);

    /**
     * 查询可复制工序的列表 排除掉自身，且必须是未检核的资料
     * @param request
     * @return
     */
    ResponseInfo stitchProcessDealList(StitchProcessPageReq request);

    /**
     * 查询可复制型体的列表
     * @param request
     * @return
     */
    ResponseInfo stitchProcessUnDealList(StitchProcessPageReq request);

    /**
     * 删除工序
     * @param style
     * @param color
     * @param seqNos
     * @return
     */
    ResponseInfo removeProcess(String style, String color, List<Integer> seqNos);

    /**
     * 保存工序
     * @param saveReq
     * @return
     */
    ResponseInfo saveProcess(StitchProcessSaveReq saveReq);
}
